Rotor resistance adaptation for indirect field oriented control of induction machine

ABSTRACT

An induction machine includes a rotor having rotor flux and a rotor resistance. The induction machine outputs first and second reference current values. A control system includes a first controller that outputs first and second reference voltage values to the induction machine and that generates an estimated rotor flux magnitude value based on a rotor resistance parameter. A computation circuit receives the first and second reference current values from the induction machine and the first and second voltage reference values from the first controller and calculates an actual rotor flux magnitude. A rotor resistance adjustor that updates the rotor resistance parameter based on the actual and estimated rotor flux magnitudes.

FIELD OF THE INVENTION

The present invention relates to induction machines, and more particularly to the control of induction machines.

BACKGROUND OF THE INVENTION

Indirect field-oriented control (IFOC) is commonly used control method for a three-phase induction machine (IM). If motor parameters of the IM are known, the IFOC reduces the complex IM dynamics to the dynamics of a separately excited dc machine. Using this approach allows the flux and torque of the induction machine to be controlled independently.

The induction machine model used in IFOC controller is given by the following equations: $\begin{matrix} {\omega_{s} = {{\omega_{e} - \omega_{r}} = {\frac{R_{r}}{L_{r}}\frac{M}{\Psi_{dr}}i_{qs}}}} & (1) \\ {{{R_{r}\Psi_{dr}} + {L_{r}\frac{\mathbb{d}\Psi_{dr}}{\mathbb{d}t}}} = {R_{r}M\quad i_{ds}}} & (2) \\ {T_{e} = {{3/2}\quad P\quad\frac{M}{L_{r}}\left( {\Psi_{dr}\quad i_{qs}} \right)}} & (3) \end{matrix}$ In equations (1)-(3), i_(ds) and i_(qs) are flux and torque producing stator current components, respectively. Ψ_(dr) is a rotor flux magnitude.

The assumption of the IFOC is that Ψ_(qr)=0 and that the stator current components are controlled by the current control loop. R_(r) is a rotor resistance, M is a mutual inductance, and L_(r)=M+L_(lr) is a rotor inductance. L_(lr) is a rotor leakage inductance and L_(lr)<<M. Also, ω_(e) is a stator electrical frequency, ω_(r) is a rotor electrical frequency, ω_(s) is a slip frequency, and T_(e) is a produced torque.

The performance of the IFOC is sensitive to discrepancies between estimated machine parameters used by the IFOC and actual machine parameters. During operation, the actual machine parameters drift from nominal or estimated values due to changes in operating conditions. If the estimated parameters stored in the IFOC controller do not reflect the actual machine parameters, a parameter mismatch occurs. As a result, the machine flux level is not properly maintained. Torque response linearity is also lost. In other words, produced torque is different from the commanded value. The discrepancy also typically exists in steady-state conditions. Finally, the torque response to step torque command is not instantaneous.

The mutual inductance M and the rotor resistance R_(r) have a significant impact on the performance of the IFOC. The mutual inductance Mvaries significantly with the machine saturation level. The variation of the mutual inductance with the flux level can be compensated using look-up tables that may be obtained during off-line characterization. The rotor resistance R_(r) is predominantly influenced by rotor temperature. Since the rotor temperature varies with machine operating conditions, the rotor resistance must be estimated using on-line approaches for tracking the rotor resistance variations during machine operation.

Referring now to FIG. 1, the commanded values for flux and torque producing stator current components *_(ds) and *_(qs), respectively, are inputs to an IFOC 20. The IFOC 20 outputs reference voltages, v_(a), v_(b) and v_(c), which are fed to a power inverter 24 of an induction motor 26. A calculating circuit 34 calculates a function y from measured quantities, including voltages v_(a), v_(b) and v_(c) and phase currents i_(a), i_(b), and i_(c). The same function is calculated in IFOC by using the internal variables and is denoted as {tilde over (y)}.

A difference, e={tilde over (y)}−y, that is generated by a difference circuit 48 is input to an adaptation controller 50. The output of the adaptation controller 50 determines the rotor resistance value R_(r) that is used in IFOC 20. If the function y is sensitive to the rotor resistance, any difference between the motor R_(r) value and the IFOC R_(r) value produces a non-zero error (e={tilde over (y)}−y≠0). The non-zero error will force the R_(r) value used in IFOC to change.

Conventional IFOC use several different functions including: reactive power (Q); electromagnetic torque (Te); active power (P); a ratio of reactive power and electromagnetic torque (Q/Te); and, a scalar product of transposed rotor flux vector and stator current vector (ω_(r) ^(T)i_(s)). These functions, however, are not sufficiently sensitive to changes in the rotor resistance R_(r) or are impractical for real-time implementation. As a result, parameter drift and reduced performance occurs.

SUMMARY OF THE INVENTION

A control system includes a first controller that outputs reference voltage values to an induction machine. The first controller also generates an estimated rotor flux magnitude value based on a rotor resistance parameter. A computation circuit receives the measured current values from the induction machine and the voltage reference values from the first controller and calculates an actual rotor flux magnitude. A rotor resistance adjustor updates the rotor resistance parameter in the controller based on the actual and estimated rotor flux magnitudes.

In other features, a difference circuit calculates a difference between the estimated and actual rotor flux magnitudes and outputs the difference to the rotor resistance estimator. The first controller is an indirect field-oriented controller (IFOC) that receives commanded values for flux and torque producing stator current values.

In still other features, the rotor resistance adjustor is disabled at rotor slip values below a predetermined threshold and enabled for rotor slip values above the predetermined threshold.

Further areas of applicability of the present invention will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating the preferred embodiment of the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein:

FIG. 1 is a functional module diagram of an indirect field oriented control (FOC) with model reference adaptive control (MRAC) tuning according to the prior art;

FIG. 2 is a functional module diagram of an indirect field oriented control (FOC) with model reference adaptive control (MRAC) tuning that employs a square of the rotor flux magnitude to estimate rotor resistance according to the present invention;

FIG. 3 is a plot illustrating relative sensitivity as a function of slip frequency;

FIG. 4 is an expanded plot of FIG. 3 for low values of slip frequency;

FIG. 5 are plots illustrating an error signal and a ratio of the estimated and true rotor resistance (bottom plot) for d-current (or flux) at 75% of its rated value and full (nominal) torque; and

FIG. 6 is a functional block diagram of an exemplary device for measuring a square of the rotor flux.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the preferred embodiment(s) is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify the similar elements. As used herein, the term module means a discrete circuit, a processor and software and/or firmware, an application specific integrated circuit, combinatorial logic and/or other similar devices.

Referring now to FIG. 2, commanded values for flux and torque producing stator current components *_(ds) and *_(qs), respectively, are input to an IFOC 60. The IFOC 60 outputs reference voltages v_(a), v_(b), and v_(c), which are fed to a power inverter 64 of an induction motor 66. A calculating circuit 74 calculates an actual rotor flux magnitude (|ψ_(r)|²) from measured quantities, including voltages v_(a), v_(b), and v_(c) and phase currents i_(a), i_(b), and i_(c). An estimated rotor flux magnitude |{tilde over (ψ)}_(r)|² is calculated in the IFOC 60 using internal variables.

A difference (e) between the estimated and actual rotor flux magnitude is output by a difference circuit 76 to a rotor resistance parameter adaptor 80. The output of the rotor resistance parameter adaptor 80 determines the rotor resistance value R_(r) that is used in the IFOC 60. Since the function (|ψ_(r)|²) is sensitive to the rotor resistance R_(r), any difference between the actual R_(r) value and the estimated R_(r) value produces a non-zero error. The non-zero error forces the R_(r) value used in the IFOC 60 to change.

The square of the amplitude of the rotor flux (|ψ_(r)|²) is used by the adaptation controller 80 according to the present invention to significantly improve performance. For a selected function, y=y(R_(r)), the relative sensitivity is defined as: $\begin{matrix} {{\overset{\_}{S}}_{R_{r}}^{y} = {\frac{R_{r}}{y}\frac{\partial y}{\partial R_{r}}}} & (4) \end{matrix}$ The relative sensitivity function shows how a relative change of R_(r) affects the adaptation function y. Preferably the absolute value of the sensitivity function |{overscore (S)}_(R) ^(y) _(r) | is as high as possible over the operating range. Also, {overscore (S)}_(R) ^(y) _(r) should not change sign over the desired operating range in order to make the implementation simple and practical. Besides having high sensitivity to R_(r) changes, the y function should be easily quantifiable from the measured quantities.

FIGS. 3 and 4 are plots of sensitivity vs. slip frequency for all function candidates. The calculations were performed on a motor that was specifically designed for electric vehicle applications. If different motor designs are used, the relative ranking of functions may change somewhat. However, the conclusions that are drawn herein are valid for a large number of induction motor designs and applications.

Sensitivity functions for electromagnetic torque, active power and ratio of reactive power to electromagnetic torque have signs that depend on the operating slip frequency, which makes these functions very difficult to implement. The crossing points are in the middle of the operating slip frequency range. Rotor resistance adaptations using these functions require complicated algorithms to detect and accommodate the sign change.

The Q and |Ψ_(r)|² functions have notably lower sensitivity for low slip values as compared with other functions. However, {overscore (S)}_(R) ^(Q) _(r) and {overscore (S)}_(R) ^(|ψ) _(r) ^(|) ² do not change sign with the slip frequency. In addition, Q and |Ψ_(r)|² can be easily calculated from both the IFOC variables and the stator-side measured currents and voltages. Out of all of the functions,.the |Ψ_(r)|² function has the largest magnitude of the sensitivity function |{overscore (S)}_(R) ^(|) _(r) ^(ωr|) ² | at higher slip frequencies. This region typically corresponds to high torque values and high rotor losses. Due to rotor heating, the rotor resistance R_(r) can deviate significantly from its nominal value. For this reason, the large value of {overscore (S)}_(R) ^(|) _(r) ^(ωr|) ² | at high slip frequencies is of particular importance.

However, {overscore (S)}_(R) ^(|) _(r) ^(ωr|) ² | is lower under light load conditions, as shown in FIG. 4. Considering typical measurement accuracy and noise levels, it is possible to detect |Ψ_(r)|² changes of 5% of the maximal value and higher. This guideline may be used to determine the slip frequency threshold below which the adaptation mechanism can be disabled. It follows then, from FIG. 3 and equation (5), that for the particular example used here, at the slip frequency of about 1.4 rad/s (0.2 Hz) and higher, a 10%-variation of the rotor resistance is detectable, since {overscore (S)}_(R) ^(|) _(r) ^(ωr|) ² |=0.5. For slip frequencies below this threshold, the adaptation mechanism is preferably disabled. This is acceptable because the influence of tuning error is very small under light load conditions. The function Ψ_(r) ^(T)i_(s), has similar properties as the proposed function |Ψ_(r)|². However, the implementation of Ψ_(r) ^(T)i_(s) is more complicated and inaccurate under certain conditions.

The magnitude of the rotor flux is inherently calculated in IFOC (equation (2)). In other words, the IFOC outputs |{overscore (ψ)}_(r)|². In the adaptation approach in FIG. 2, it is necessary to find a way of calculating |Ψ_(r)|² from measured stator currents and voltages, under the underlying assumption of rotor field-orientation. The instantaneous reactive power q is given by q=v_(s) ^(T)Ji_(s)  (5) where v_(s) ^(T) and i_(s) ^(T) are stator voltage and current vectors, respectively, and J is given by: $\begin{matrix} {J = \begin{bmatrix} 0 & {- 1} \\ 1 & 0 \end{bmatrix}} & (6) \end{matrix}$

Equation (5) is valid in the stationary reference frame, as well as in the rotating field-oriented synchronous reference frame, i.e. $\begin{matrix} \begin{matrix} {q = {v_{s}^{T}{Ji}_{s}}} \\ {= {{v_{ds}i_{qs}} - {v_{qs}i_{ds}}}} \\ {= {{v_{\alpha\quad s}i_{\beta\quad s}} - {v_{\beta s}i_{\alpha s}}}} \end{matrix} & (7) \end{matrix}$ The stator voltage equation in the rotating reference frame, in vector form, and in terms of the stator currents and flux linkages is given by: $\begin{matrix} {{v_{s} = {{R_{s}i_{s}} + {\omega_{e}J\quad\psi_{s}} + {\overset{.}{\psi}}_{s}}}{where}} & (8) \\ {{\psi_{s} = {{L_{s}\sigma\quad i_{s}} + {\frac{M}{L_{r}}\psi_{r}}}}{and}} & (9) \\ {{\overset{.}{\psi}}_{s} = {{L_{s}\sigma\quad i_{s}} + {\frac{M}{L_{r}}{\overset{.}{\psi}}_{r}} + {\left( {\frac{\partial\quad}{\partial t}\left( \frac{M}{L_{r}} \right)} \right)\psi_{r}}}} & (10) \end{matrix}$ In equation (10), ∂/∂t(M/L_(r))≈0. Moreover, assuming that the rotor flux is in steady state, {dot over (ψ)}_(r)=0, equation (10) simplifies to: {dot over (ψ)}_(s)=L_(s)σi_(s)  (11)

Substituting (8), (9) and (11) into (5), the instantaneous relative power is: $\begin{matrix} {q = {{\omega_{e}L_{s}\sigma\quad i_{s}^{T}i_{s}} + {L_{s}\sigma\quad i_{s}^{T}J\quad i_{s}} + {\omega_{e}\frac{M}{L_{r}}\psi_{r}^{T}i_{s}}}} & (12) \end{matrix}$ Equation (12) does not require knowledge of the stator resistance value R_(s). This is important since the stator resistance value R_(s) changes significantly with the operating conditions. Assuming rotor field orientation, the equation (12) can further be simplified into: $\begin{matrix} {q = {{L_{s}\sigma\quad i_{a\quad\beta\quad s}^{T}i_{a\quad{\beta s}}} + {\frac{\omega_{e}}{L_{r}}{\psi_{r}}^{2}}}} & (13) \end{matrix}$ where i_(αβs) is the stator current vector in the stationary reference frame.

Finally, it follows from equations (7) and (13) that: $\begin{matrix} {{\psi_{r}}^{2} = {\left( {\left( {{v_{\beta\quad s}i_{\alpha s}} - {v_{\alpha\quad s}i_{\beta\quad s}}} \right) - {L_{s}{\sigma\left( {{i_{\alpha\quad s}\frac{\mathbb{d}i_{\beta\quad s}}{\mathbb{d}t}} - {i_{\beta\quad s}\frac{\mathbb{d}i_{\alpha\quad s}}{\mathbb{d}t}}} \right)}}} \right)\frac{L_{r}}{\omega_{e}}}} & (14) \end{matrix}$ Equation (14) can be used to calculate |ψ_(r)|² from the measured quantities in the stationary reference frame. For a typical induction machine, the stator leakage inductance (L_(s)σ) is approximately constant and does not vary significantly with the stator current. However, if the stator leakage inductance does vary substantially, a look-up table can be used. Note that for steady state conditions, equation (14) becomes much simpler: $\begin{matrix} {{\psi_{r}}^{2} = {\left( {\frac{{v_{\beta\quad s}i_{\alpha\quad s}} - {v_{\alpha\quad s}i_{\beta\quad s}}}{\omega_{e}} - {L_{s}\sigma{i_{s}}^{2}}} \right)L_{r}}} & (15) \end{matrix}$

Referring now to FIG. 6, one exemplary implementation of equation (14) is depicted. Besides the information of stator currents, equation (14) needs the derivatives of the currents and the stator voltages, which are difficult to measure. Stator voltages can be estimated from the commanded voltage vector u_(s)* in estimating module (EST) 100, which performs the following computations: $\begin{matrix} \begin{matrix} {{\hat{u}}_{as} = {u_{as}^{*} - {E\frac{\Delta\quad T}{T}{{sgn}\left( i_{as} \right)}} + {\frac{u_{as}^{*}}{E}\left( {V_{d} - V_{ce}} \right)} - {\frac{1}{2}\left( {V_{d} + V_{ce}} \right){{sgn}\left( i_{as} \right)}}}} \\ {{\hat{u}}_{bs} = {u_{bs}^{*} - {E\frac{\Delta\quad T}{T}{{sgn}\left( i_{bs} \right)}} + {\frac{u_{bs}^{*}}{E}\left( {V_{d} - V_{ce}} \right)} - {\frac{1}{2}\left( {V_{d} + V_{ce}} \right){{sgn}\left( i_{bs} \right)}}}} \\ {{\hat{u}}_{cs} = {u_{cs}^{*} - {E\frac{\Delta\quad T}{T}{{sgn}\left( i_{cs} \right)}} + {\frac{u_{cs}^{*}}{E}\left( {V_{d} - V_{ce}} \right)} - {\frac{1}{2}\left( {V_{d} + V_{ce}} \right){{sgn}\left( i_{cs} \right)}}}} \end{matrix} & (16) \end{matrix}$ In equation (16), the voltages u_(a) ^(*) _(s), u_(b) ^(*) _(s) and u_(c) ^(*) _(s) are available from the controller 60 and are typically between −E/2 and +E/2, where E is a DC-link voltage. Currents i_(as), i_(bs) and i_(cs) are measured line-currents. V_(ce) and V_(d) are the saturation voltage and the free-wheeling diode voltage, respectively. T is a period of the applied PWM and ΔT is the lockout time of power switches. When the DC-link voltage is much higher than the saturation voltage, a practical simplification of (16) can be made as: û _(xs) ≈u _(x) ^(*) _(s) −Dsgn(i _(xs))  (17) where subscript x stands for a, b or c, and D is a constant that can be calculated (or determined experimentally). The actual implementation strongly depends on the DC-link voltage and type of the power switches used in the inverter.

The estimated stator voltages are further transformed in α-β frame using equation (18): $\begin{matrix} {{{\hat{u}}_{\alpha\quad s} = {{\frac{2}{3}{\hat{u}}_{a\quad s}} - {\frac{1}{3}\left( {{\hat{u}}_{bs} + {\hat{u}}_{cs}} \right)}}}{{\hat{u}}_{\beta\quad s} = {\frac{\sqrt{3}}{3}\left( {{\hat{u}}_{bs} - {\hat{u}}_{cs}} \right)}}} & (18) \end{matrix}$ Usually, the currents are measured by means of two current sensors (for a Y-connected machine). In this case currents in the stationary frame are: $\begin{matrix} {{i_{\alpha\quad s} = i_{a\quad s}}{i_{\beta\quad s} = {\frac{\sqrt{3}}{3}\left( {i_{bs} - i_{cs}} \right)}}} & (19) \end{matrix}$

The time derivatives of the currents are values that can introduce a large amount of noise in the estimation, especially at lower speeds. To decrease the noise and its influence on the adaptation algorithm, it is necessary to implement a special procedure for derivative calculation. The method according to the present invention uses an adaptive derivation time that varies for different ω_(e). The time derivative of a variable is calculated as an increment of this variable for the defined time. Usually, the increment is calculated for one or several sampling periods. For extremely low electrical speeds (let us assume 0.1 Hz, which is normal for zero rotor speed), the current (usually sampled with a rate above 10 kHz), changes by a very small amount between two consecutive samples. In the mentioned example, the current needs 2500 ms (or more than 25000 sampling intervals) to change from zero to its maximal value. It is impractical to extract the information of the derivative from consecutive sampling intervals because it is masked by the noise that is at least two orders of magnitude larger than the increment of interest.

To avoid the effects of the measurement noise, the derivative can be calculated, for example, as an increment in 1000 sampling intervals. However, this is not satisfactory for higher frequencies (e.g., 200 Hz would require calculating the increment in each sampling interval, because the whole period lasts 50 sampling intervals). An approximately constant number of increment-calculating periods is kept for one period of the current. However, calculating the time derivative as an increment over a certain time introduces a delay that must be taken into account. For implementation, it is typically enough to use a rough approximation (for example, a delay equals to a half of the increment-calculating period).

Starting from the part that appears in equation (3.26), this practical approximation yields: $\begin{matrix} \begin{matrix} {{\left( {{i_{\alpha\quad s}\frac{\mathbb{d}i_{\beta\quad s}}{\mathbb{d}t}} - {i_{\beta\quad s}\frac{\mathbb{d}i_{\alpha\quad s}}{\mathbb{d}t}}} \right)\frac{1}{\omega_{e}}} \approx {\left( {{i_{\alpha\quad s}\frac{\Delta\quad i_{\beta\quad s}}{\Delta\quad t}} - {i_{\beta\quad s}\frac{\Delta\quad i_{\alpha\quad s}}{\Delta\quad t}}} \right)T_{e}}} \\ {= {{i_{\alpha\quad s}\Delta\quad i_{\beta\quad s}\frac{T_{e}}{\Delta\quad t}} - {i_{\beta\quad s}\Delta\quad i_{\alpha\quad s}\frac{T_{e}}{\Delta\quad t}}}} \end{matrix} & (20) \end{matrix}$ In equation (20), Δi_(xs) is an increment that the corresponding current makes for the time interval Δt, and T_(e) is a period (T_(e)=1/ω_(e)). The ratio T_(e)/Δt is kept approximately constant. The constant c=T_(e)/Δt defines the number of subintervals (in one period of the current) in which the increment will be calculated. The actual selection is determined experimentally and is typically in between 20 and 50. Using the constant c, the increment-calculating period can be defined as: $\begin{matrix} {{\Delta\quad t} = \frac{T_{e}}{c}} & (21) \end{matrix}$

Since T_(e) is a variable that is available in the controller, the increment-calculating period Δt, can be calculated. If T_(e) is expressed in sample intervals, then the value for Δt is also in sample intervals. To calculate the current increment Δi_(xs), the sample taken Δt time ago is subtracted from the latest sample. Equation (14) is finally modified to the form suitable for implementation: |{circumflex over (ψ)}_(r)|² =qL _(r) T _(e) −L _(σs) L _(r) C(i _(αs) Δi _(βs) −i _(βs) Δi _(αs))  (22)

The reactive power q is calculated as q=û_(βs)i_(αs)−û_(αs)i_(βs) ·L _(σs) is the equivalent stator leakage inductance (L_(σs)=L_(s)σ), and can be treated as a constant for most applications. If the leakage inductance depends strongly on the magnetizing current, it may be tabulated. The rotor inductance L_(r) takes into account the nonlinearities in the main magnetic circuit.

The increments of current (Δi_(xs)) are obtained using the technique described earlier. This method introduces the delay in the derivative data that cannot be ignored. For this reason, the voltage and current variables involved in the computation (22) are delayed for the same time. Moreover, the currents, the derivatives, and voltages are filtered with low-pass filters denoted as LPF 102A, 102B and 102C in FIG. 6. The cut-off frequency of filters should be defined for the particular implementation. The main purpose of the LPF is to reduce the PWM switching frequency components from currents. Since the LPFs also introduce delay, the delays (of LPF, and variable delay from derivative calculation) is balanced at the input in an actual rotor flux calculating module 110.

The ariation of R_(r) is slow (usually with the time constant on the order of magnitude of 10 s or more). Before subtracting the estimated value from |ψ_(r)|² obtained from IFOC, the latter must be delayed for the same time as all other variables.

The difference between the estimated value and the value in IFOC is the error (Δy in FIG. 6), which is mainly a consequence of a mistuned R_(r). The other origins of the error lie in different imperfections in the estimation process. The most important are imperfectly estimated voltages, noise in current derivatives and imperfectly evaluated L_(r).

Using the simplified form for the estimated voltages (16) and developing the expression for q in a Fourier series, it can shown that in steady state all components that originate from the dead time have frequencies that are multiples of the fundamental. Therefore, the mean value of these components in one period of the fundamental is zero. If the average of the error Δy is calculated during one whole period T_(e) (T_(e)=1/ω_(e)), the errors caused by the dead time will be reduced. The same will reduce errors from the noise as well.

A filtering module (FILT) 120 in FIG. 6 calculates the average of Δy for one period T_(e). The filtering module 120 accumulates the error Δy starting when θ_(e) is zero and ending the accumulation when θ_(e) becomes zero again. The average evaluated during this period is used as an error signal. θ_(e) is an angle between α-axis of the stationary frame and d-axis of the synchronous frame, and it is known in the controller.

As discussed previously, the sensitivity of the function |ψ_(r)|² decreases significantly for very small loads. Therefore, the adaptation mechanism should be disabled for i_(qs) lower than a predetermined value, which is dependent upon the actual limit should be defined for the actual implementation. The suspension of the adaptation. mechanism for extremely low loads is nota disadvantage, because at low loads it is not particularly important whether the IFOC 60 is the well tuned or not. As soon as the load increases, the adaptation mechanism is to be enabled again.

An inhibiting module (INH) 124 in FIG. 6 inhibits the adaptation if the q-component of the stator current is lower than a predetermined value. In the disabled state, the output from this module is equal to zero. Finally, the error is output to the controller 60 via an integrating module (INT REG) 128. The output of the module is the estimated rotor resistance R_(r)*, which is used in the IFOC 60.

Referring now to FIG. 4, experimental results of the rotor resistance adaptation controller 50 using the proposed adaptation function y=|ψ_(r)|² is shown. The error in upper plot is defined as: ${{Error}\quad\lbrack\%\rbrack} = {\frac{{\psi_{r}}^{2} - {{\overset{\sim}{\psi}}_{r}}^{2}}{{\psi_{r}}^{2}} \cdot 100}$ As explained before, |{tilde over (ψ)}_(r)|² is the IFOC output, whereas |ψ_(r)|² is calculated using the equation (14). An experiment was performed on a standard 3-phase industrial motor operating in steady state. The rotor flux reference was kept constant at 75% of the nominal value. Nominal torque was applied to the machine. The test was performed with the locked rotor (ω_(r)=0), which represents the worst-case condition for the adaptation controller 50, due to the lowest value of {overscore (S)}_(R) ^(|) _(r) ^(ωr|) ² |.

Two seconds after initiating the test, the R_(r) value used in the IFOC controller 60 was intentionally increased by 50% from its actual value, which caused a parameter mismatch. As can be seen in FIG. 5, the rotor resistance parameter adaptor 80 corrected the rotor resistance value R_(r) in the IFOC controller to the actual value in less than five seconds. Similarly, eighteen seconds after the start, the rotor resistance value R_(r) in the IFOC controller 60 was intentionally reduced by 50% from its actual value. The rotor resistance parameter adaptor, again, quickly restored the rotor resistance parameter value R_(r) to its actual value.

Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the present invention can be implemented in a variety of forms. Therefore, while this invention has been described in connection with particular examples thereof, the true scope of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, the specification and the following claims. 

1. A control system for an induction machine including a rotor having rotor flux and a rotor resistance, wherein said induction machine outputs first and second reference current values, comprising: a first controller that outputs first and second reference voltage values to said induction machine and that generates an estimated rotor flux magnitude value based on a rotor resistance parameter; a computation circuit that receives said first and second reference current values from said induction machine and said first and second voltage reference values from said first controller and that calculates an actual rotor flux magnitude; and a rotor resistance adjustor that updates said rotor resistance parameter of said first controller based on said actual and estimated rotor flux magnitudes.
 2. The control system of claim 1 further comprising a difference circuit that calculates a difference between said estimated and actual rotor flux magnitudes and that outputs said difference to said rotor resistance adjustor.
 3. The control system of claim 1 wherein said first controller is an indirect field-oriented controller (IFOC).
 4. The control system of claim 3 wherein said IFOC receives flux and torque producing stator current values.
 5. The control system of claim 1 wherein said rotor resistance adjustor is disabled at rotor slip values below a predetermined threshold and is enabled for rotor slip values above said predetermined threshold.
 6. The control system of claim 1 wherein said computation circuit calculates said actual rotor flux magnitude based on an equation: ${\psi_{r}}^{2} = {\left( {\left( {{v_{\beta\quad s}i_{\alpha\quad s}} - {v_{\alpha\quad s}i_{\beta\quad s}}} \right) - {L_{s}{\sigma\left( {{i_{\alpha\quad s}\frac{\mathbb{d}i_{\beta\quad s}}{\mathbb{d}t}} - {i_{\beta\quad s}\frac{\mathbb{d}i_{\alpha\quad s}}{\mathbb{d}t}}} \right)}}} \right)\frac{L_{r}}{\omega_{e}}}$ where μ_(αs) and μ_(βs) are stator voltages in a stationary reference frame, i_(αs), and i_(βs) are stator currents in the stationary reference frame, L_(s)σ is an equivalent stator leakage inductance, L_(r) is a rotor inductance and ω_(e) is a stator electrical frequency.
 7. A control system for an induction machine including a rotor having rotor flux and a rotor resistance, wherein said induction machine outputs first and second reference current values, comprising: an indirect field-oriented controller (IFOC) that outputs first and second reference voltage values to said induction machine and that generates an estimated rotor flux magnitude value based on a rotor resistance parameter; a computation circuit that receives said first and second reference current values from said induction machine and said first and second reference voltage values from said IFOC and that calculates an actual rotor flux magnitude; a difference circuit that calculates a difference between said estimated and actual rotor flux magnitudes; and a rotor resistance adjustor that updates said rotor resistance parameter of said IFOC based on said difference.
 8. The control system of claim 7 wherein said IFOC receives flux and torque producing stator current values.
 9. The control system of claim 7 wherein said rotor resistance adjustor is disabled at rotor slip values below a predetermined threshold and enabled for rotor slip values above said predetermined threshold.
 10. The control system of claim 7 wherein said computation circuit calculates said actual rotor flux magnitude based on an equation: ${\psi_{r}}^{2} = {\left( {\left( {{v_{\beta\quad s}i_{\alpha\quad s}} - {v_{\alpha\quad s}i_{\beta\quad s}}} \right) - {L_{s}{\sigma\left( {{i_{\alpha\quad s}\frac{\mathbb{d}i_{\beta\quad s}}{\mathbb{d}t}} - {i_{\beta\quad s}\frac{\mathbb{d}i_{\alpha\quad s}}{\mathbb{d}t}}} \right)}}} \right)\frac{L_{r}}{\omega_{e}}}$ where μ_(αs) and μ_(βs) are stator voltages in a stationary reference frame, i_(αs) and i_(βs) are stator currents in the stationary reference frame, L_(s)σ is an equivalent stator leakage inductance, L_(r) is a rotor inductance and ω_(e) is a stator electrical frequency.
 11. A method for controlling an induction machine including a rotor having rotor flux and a rotor resistance, wherein said induction machine outputs first and second reference current values, comprising: generating first and second reference voltage values using an indirect field-oriented controller (IFOC); generating an estimated rotor flux magnitude value using said IFOC based on a rotor resistance parameter; calculating an actual rotor flux magnitude based on said first and second reference voltage values and said first and second reference current values; and updating said rotor resistance parameter of said IFOC based on said actual and estimated rotor flux magnitudes.
 12. The method of claim 11 further comprising: calculating a difference between said estimated and actual rotor flux magnitudes; using said difference in said updating step.
 13. The method of claim 11 wherein said first and second reference voltage values of said IFOC are based on flux and torque producing stator current values.
 14. The method of claim 11 wherein updates to said rotor resistance are disabled at rotor slip values below a predetermined threshold and enabled for rotor slip values above said predetermined threshold.
 15. The method of claim 14 wherein said predetermined threshold is approximately 1.4 rad/s.
 16. The method of claim 12 wherein said actual rotor flux magnitude is based on an equation: ${\psi_{r}}^{2} = {\left( {\left( {{v_{\beta\quad s}i_{\alpha\quad s}} - {v_{\alpha\quad s}i_{\beta\quad s}}} \right) - {L_{s}{\sigma\left( {{i_{\alpha\quad s}\frac{\mathbb{d}i_{\beta\quad s}}{\mathbb{d}t}} - {i_{\beta\quad s}\frac{\mathbb{d}i_{\alpha\quad s}}{\mathbb{d}t}}} \right)}}} \right)\frac{L_{r}}{\omega_{e}}}$ where μ_(αs) and μ_(βs) are stator voltages in a stationary reference frame, i_(αs) and i_(βs) are stator currents in the stationary reference frame, L_(s)σ a is an equivalent stator leakage inductance, L_(r) is a rotor inductance and ω_(e) is a stator electrical frequency.
 17. The method of claim 16 wherein a stator leakage current L_(s)σ in said equation is estimated from a lookup table. 